Filtering network packets in multiple forwarding information base systems

ABSTRACT

In some implementations, a method for routing communication includes determining a binding interface for a communication session based on a forwarding information base (FIB) and a destination for the communication session. The communication session is from an application running on user equipment (UE), and the binding interface is included in a virtual private network (VPN) tunnel established through an Internet Protocol (IP) security (IPsec) interface. Whether to filter the communication session is determined based on which perimeter of the UE includes the binding interface and which perimeter of the UE includes the IPsec interface.

TECHNICAL FIELD

This invention relates to filtering packets in multiple forwardinginformation base systems.

BACKGROUND

Generally, a virtual private network (VPN) is a network that uses apublic telecommunication infrastructure (e.g., Internet) to create asecure virtual connection for communication between two or moreentities. The secure connection may be accomplished through the use of a“tunnel” between the two or more entities. A VPN may utilize variousprotocols to establish the tunnel and to secure communications betweenthe sender and recipient. For example, one protocol is Internet ProtocolSecurity (IPsec). When implementing IPsec, each IP packet of a datastream is authenticated and encrypted to protect data flows in the VPN.

DESCRIPTION OF DRAWINGS

FIG. 1 is an example communication system using multiple forwardinginformation bases (MFIB) and a VPN;

FIG. 2 is a flowchart illustrating an example method for filteringpackets in an MFIB system;

FIG. 3 is an example communication system with a binding interface andan IPsec interface in a personal perimeter;

FIG. 4 is a flowchart illustrating an example method for filteringpackets with the binding interface and the IPsec interface in thepersonal perimeter;

FIG. 5 is a communication system with direct routing to a bindinginterface in a personal perimeter;

FIG. 6 is a communication system for filtering packets directly routedto a binding interface in a personal perimeter;

FIGS. 7A and 7B is a flowchart illustrating an example method forfiltering packets directly routed to a binding interface in a personalperimeter;

FIG. 8 is a communication system with direct routing to a sharedinterface;

FIG. 9 is a communication system for filtering packets directly routedto a shared interface;

FIGS. 10A and 10B is a flowchart illustrating an example method forfiltering packets directly routed to a shared interface;

FIG. 11 is a communication system for routing packets with both abinding interface and an IPsec interface in an enterprise perimeter;

FIG. 12 is a communication system for filtering packets with both thebinding interface and the IPsec interface in the enterprise perimeter;

FIGS. 13A and 13B is a flowchart illustrating an example method forfiltering packets with both the binding interface and the IPsecinterface in the enterprise perimeter; and

FIG. 14 is another flowchart illustrating an example method forfiltering packets in MFIB systems.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

In some implementations, a method for routing communication includesdetermining a binding interface for a communication session based on aforwarding information base (FIB) and a destination for thecommunication session. The communication session is from an applicationrunning on user equipment (UE), and the binding interface is included ina virtual private network (VPN) tunnel established through an InternetProtocol (IP) security (IPsec) interface. Whether to filter thecommunication session is determined based on which perimeter of the UEincludes the binding interface and which perimeter of the UE includesthe IPsec interface.

Specific implementations can include one or more of the followingfeatures. The binding interface, the IPsec interface, and theapplication is determined to be included in a same perimeter, andpackets for the communication session from the application are filteredto substantially prevent direct access to the binding interface. Whenthe same perimeter is an enterprise perimeter and applications in apersonal perimeter are granted access to interfaces in the enterpriseperimeter, packets for communication session from applications in boththe personal perimeter and the enterprise perimeter are filtered tosubstantially prevent direct access to the binding interface. Whenbinding interface and the IPsec interface are determined to be includeddifferent perimeters and applications in a personal perimeter aregranted access to interfaces in an enterprise perimeter is determined,packets for communication session from applications in the personalperimeter are filtered to substantially prevent direct access to thebinding interface. When binding interface and the IPsec interface aredetermined to be included different perimeters and applications in apersonal perimeter are determined to be prohibited access to interfacesin an enterprise perimeter, packets from the communication session arerouted directly to the binding interface.

In other words, the present disclosure is directed to filtering networkpackets communications in multiple forwarding information base (MFIB)systems. For example, network packets for a communication session may befiltered if the assigned interface for the communication session iscurrently being used in a VPN tunnel. In some implementations, aforwarding information base (FIB) can be a data structure thatassociates destinations with communication interface information (e.g.,physical interfaces), and MFIBs can be multiple forwarding informationbases locally stored in user equipment (UE). In addition, each FIB inthe MFIB may be assigned to different perimeters of a UE. In general, asecurity/trusted domain or perimeter may refer to a logical separationof resources, such as at least one of applications, stored data, ornetwork access. In some implementations, perimeter resources which arenot shared may be encrypted and password protected to, for example,securely separate those resources from resources in differentperimeters. For example, unshared resources in one perimeter may beprohibited from accessing unshared resources assigned to a differentperimeter. Shared network resources, on the other hand, may includeresources (e.g., physical interfaces) shared by two or more perimeters.For example, a first perimeter (e.g., personal perimeter) and a secondperimeter (e.g., enterprise perimeter) may share at least one of a WiFiinterface, a Bluetooth interface, or other interface.

In some implementations, split tunneling can be prevented in MFIBsystems with multiple network perimeters. For example, shared interfacesmay not be allowed to bypass a VPN once a VPN tunnel has beenestablished. With MFIB and different perimeters, one enterpriseinterface may be assigned to multiple perimeters such as assigned toboth a personal perimeter and an enterprise perimeter. In theseinstances, packets routed through shared interfaces in a particularperimeter may be controlled, filtered or otherwise managed based on oneor more of the following: which perimeter includes the bindinginterface, i.e., the interface a VPN is established over; whichperimeter includes the VPN interface; system settings allowing personalapplications to use enterprise interfaces; or other communicationinformation. Based on all or some of the identified information, a setof behaviors which both adheres to specified security policies (e.g.,not allowing split tunneling) may be defined as well as allow routingtraffic to a shared interface when routed through a different perimeter.In some implementations, split tunneling in an MFIB system can beprevented or otherwise reduced by removing enterprise interfaces fromcertain perimeters and associated FIBs. In some implementations, splittunneling in an MFIB system can be prevented by extending packet filtercapabilities of a UE, which may include filtering network packets basedon which perimeters include the binding interface and the virtualinterface. In addition, when the VPN tunnel is dropped, the appropriateblocking operations may be reversed to allow traffic through the sharedinterface.

FIG. 1 is an example communication system 100 for filtering networkpackets in an MFIB system in accordance with the present disclosure. Forexample, the system 100 may filter packets assigned to directly route toa binding interface of a VPN tunnel. The exemplary communication system100 includes user equipment (UE) 102 communicably coupled to a publicnetwork 104 and an enterprise network 106. The UE 102 comprises a firstperimeter 103, a second perimeter 105 and a network stack 107. The firstperimeter 103 includes a communication channel 110 a, an application 112a, an ipsec0 virtual interface 114 a, an IPsec component 116 a, andshared interfaces 118 a and 118 b, and the second perimeter 105 includesa communication channel 110 b, an application 112 b, an ipsec1 virtualinterface 114 b, an IPsec component 116 b, and shared interfaces 118 cand 118 d. The network stack 107 spans both the first perimeter 103 andthe second perimeter 105 and includes a FIB 108 a and packet filteringmodule 109 a for the first perimeter 103 and a FIB 108 b and packetfiltering module 109 b for the first perimeter 103. In connection withestablishing a VPN tunnel, the IPsec component 116 a, 116 b may transmitrules to at least one of the packet filtering modules 109 a or 109 bidentifying criteria for filtering network packets from application 112a, 112 b. For example, the IPsec component 116 b may transmit filteringrules to the packet filtering module 109 a in connection withestablishing a VPN tunnel through the shared interface 118 a in thefirst perimeter 103. In these instances, the network stack 107 mayreceive, from application 112 a, 112 b, a communication request anddetermine an interface 118 for the communication session based on theFIB 108 a, 108 b. In connection with determining the interface, thepacket filtering module 109 a, 109 b may determine that the interface iscurrently used by a VPN tunnel and whether to filter network packetsfrom the application 112 a, 112 b. For example, the packet filteringmodule 109 a, 109 b may determine whether to filter packets based onwhich perimeter includes the binding interface 118 of a VPN and whichperimeter includes the virtual interface 114 a, 114 b. For example, ifthe packet filtering module 109 a, 109 b determines that the interface118 and the virtual interface 114 a, 114 b are in the same perimeter,the packet filtering module 109 a, 109 b may filter packets fromapplication 112 a, 112 b routed directed to the binding interface 118.If access to the interface 118 is denied, the packet filter module 109a, 109 b blocks or otherwise filters packets assigned to directly routeto the binding interface 118.

The UE 102 of exemplary system 100 may be a computing device operable toreceive requests from the user via a user interface, such as a GraphicalUser Interface (GUI), a CLI (Command Line Interface), or any of numerousother user interfaces using any suitable input device (e.g. touchscreen, keyboard, track wheel, etc.). Thus, where reference is made to aparticular interface, it should be understood that any other userinterface may be substituted in its place. In various implementations,the UE 102 comprises an electronic computing device operable to receive,transmit, process and store any appropriate data associated with thecommunication system 100. The UE 102 may encompass any electronic deviceand/or computing device that has wireless communication capability. Forexample, the UE 102 may be a tablet computer, a personal computer, alaptop computer, touch screen terminal, workstation, network computer,kiosk, wireless data port, wireless or wireline phone, personal dataassistant (PDA), smartphone, etc. For example, the UE 102 may comprise awireless communication device that includes an input device, such as akeypad, touch screen, mouse, or other device that can acceptinformation, and an output device that may convey information associatedwith the operation of the resources, including digital data, visualinformation, or GUI. Both the input device and output device may includefixed or removable storage media such as a magnetic computer disk,CD-ROM, or other suitable media to both receive input from and provideoutput to users of terminals 106 through the display, such as a GUI. Inaddition, the UE 102 may also include multiple perimeters 103 and 105.

As previously mentioned, the first perimeter 103 may substantiallyprevent access to perimeter resources by the second perimeter 105 suchas applications 112 a in the first perimeter 103. Similarly, the secondperimeter 105 may substantially prevent access to resources by the firstperimeter 103 such as applications 112 b in the second perimeter 105. Insome implementations, one or more of the perimeters 103, 105 may includepassword protection, encryption, and other process for controllingaccess to resources assigned to the perimeter such as the physicalinterfaces 118 a-d. A perimeter 103, 105 may be generated by the deviceowner, a user, an administrator, or others. In some examples, a firstperimeter 103 may be a personal perimeter created by default for theuser and as well as managed by the user. In some examples, a secondperimeter 105 may be an enterprise perimeter created by an administratorfor an enterprise and may be managed, for example, by a remotemanagement server. In some implementations, the first perimeter 103 maybe associated with a personal account, and the second perimeter 105 maybe associated with an enterprise account. The resources associated witha perimeter 103, 105 may be accessed by the device owner, a user, anadministrator, a combination of the foregoing, or others. In someimplementations, a perimeter 103, 105 may be associated with a singleuser or each user may access resources associated with multiple deviceperimeters such as both the personal perimeter 103 and the enterpriseperimeter 105. In some implementations, a user may have access toresources in only one perimeter 103 or 105. In some implementations, adevice owner may have the ability to remove individual perimeters 102 or105 from the UE 402.

The network stack 107 may include any software, hardware, firmware, orcombination thereof configured to coordinate communication sessions withapplications 112 a and 112 b using the FIBs 108 a and 108 b, networkfiltering modules 109 a and 109 b, and the physical interfaces 118 a-d.For example, the network stack 107 may verify whether a requestingapplication 112 has been granted permissions to access to a FIB 108 and,if so, determine an assigned interface 118 for a communication sessionusing the FIB 108. In some implementations, the network stack 107 maymanage FIBs 108 a and 108 b and manage connections of communicationchannels 110 a and 110 b with FIBs 108 a and 108 b. The FIB 108 a, 108 bmay include any parameters, variables, policies, algorithms,instructions, settings, or rules for routing communication to at leastone of the public network 104 or the enterprise network 106. Forexample, the FIB 108 a, 108 b may map a destination address to aphysical interface 114, another FIB, another communication channel, orothers. In general, the FIB 108 a, 108 b may be any data structureconfigured to map or otherwise associate a destination address to aphysical interface 114. For example, the FIB 108 a, 108 b may comprise atable where each row maps a destination network address to a physicalinterface 114. However, the FIB 108 a, 108 b may be comprised of otherdata structures without departing from the scope of the disclosure. Insome implementations, the FIB 108 a, 108 b may include or otherwiseidentify one or more of the following: a destination network address(destination); an address of the outgoing interface (gateway); a stateof the route (flag); a current number of active uses for the route(refs); a count of the number of packets sent using that route (use); amaximum transmission unit (Mtu); a physical interface (interface); orothers.

The packet filter module 109 a, 109 b may include any software,hardware, firmware, or combination thereof configured to filter networkpackets based on one or more rules associated with a VPN. For example,the packet filter module 109 a, 109 b may receive rules from a IPseccomponent 116 a, 116 b in connection with establishing an VPN tunnelthrough a binding interface 118 and block or otherwise filter networkpackets assigned to directly access the binding interface 118 withoutinitially entering the IPsec component 116 a, 116 b. In someimplementations, the packet filter module 109 a, 109 b may execute oneor more of the following: receive rules for filtering network packetsfrom an IPsec component 116 a, 116 b; determine whether perimeter 103 orperimeter 105 includes the binding interface 118 for the VPN tunnel;determine whether perimeter 103 or perimeter 105 includes the virtualinterface 114 a, 114 b for the VPN tunnel; determine whether personalapplications 112 are allowed to communicate over enterprise interfaces118; determine whether network packets are assigned to directly route tothe binding interface 118; determine whether the operating conditionssatisfy the rules; block or otherwise filter packets in response tooperating conditions satisfying the rules; release or otherwise deleterules once an associated VPN tunnel has been terminated; or others. Forexample, the packet filter module 109 a, 109 b may determine that boththe binding interface 118 and the virtual interface 114 a, 114 b are inthe same perimeter and filter network packets assigned to route directlyto the binding interface independent of or without passing through thevirtual interface 114 a, 114 b. In the event that the binding interface118 and the virtual interface 114 a, 114 b are in different perimeters,the packet filter module 109 a, 109 b may determine whether to filterpackets assigned to route directly to the binding interface based onwhether personal applications have access to the enterprise interfaces.In the event that the first perimeter 103 is a personal perimeter 103and the second perimeter 105 is a personal perimeter 105 and thepersonal application 112 a has access to the enterprise interface 118 c,118 d, the packet filter module 109 a may filter network packets fromthe personal application 112 a that are assigned to directly route tothe binding interface 118.

The communication channel 110 a, 110 b can include any software,hardware, firmware or combination thereof configured to routecommunication from application 112 a, 112 b to at least one of thepublic network 104 or the enterprise network 106. For example, thecommunication channel 110 a, 110 b may be an IPC channel between theapplication 112 a, 112 b and the network stack 107, which is configuredto determine a physical interface 114 to route communication based onthe FIB 108 a, 108 b. In some implementations, the communication channel110 a, 110 b may be one endpoint of a two-way communication link betweenan application 112 a, 112 b and an application running in the publicnetwork 104 or the enterprise network 106. For example, thecommunication channel 110 a, 110 b may be bound to a port number for aphysical interface 114 so that the TCP layer can identify theapplication 112 a, 112 b to which data is destined to be sent. In someimplementations, an application 112 a, 112 b may access the samecommunication channel 110 a, 110 b for all communications, and thecommunication channel 110 a, 110 b may switch between accessing thedifferent FIBs 108 a and 108 b. The method of moving a communicationchannel 110 a, 110 b between two or more FIBs 108 a, 108 b may beexecuted, for example, through an out-of-band communication between theapplication 112 a, 112 b and the network stack 107 (whichcontrols/implements the FIBs) in which network stack 107 may verify thatthe application 112 a, 112 b is allowed to access the requested FIB 108a, 108 b and modify the communication channel's association accordingly.

The applications 112 a, 112 b may comprise any application, program,module, process, or software that may execute, change, delete, generate,or otherwise manage information, such as business information, accordingto the present disclosure. For example, the application 112 a, 112 b mayinclude a notification application, a contacts application, a calendarapplication, a messaging application, or others. Further, whileillustrated as internal to the UE 102, one or more processes associatedwith the application 112 a, 112 b may be stored, referenced, or executedremotely. For example, a portion of the application 112 a, 112 b may bean interface to a web service that is remotely executed. Moreover, theapplication 112 a, 112 b may be a child or sub-module of anothersoftware module or enterprise application (not illustrated) withoutdeparting from the scope of this disclosure. In some implementations,the application 112 a, 112 b may be a hosted solution that allowsmultiple parties in different portions of the process to perform therespective processing. For example, the enterprise network 106 mayaccess the application 112 a, 112 b on the UE 102 or as a hostedapplication located over network 106 without departing from the scope ofthis disclosure. In another example, portions of the application 112 a,112 b may be used by the user working directly with the UE 102, as wellas remotely via, for example, enterprise network 106. In someimplementations, the applications 112 a, 112 b may be configured toaccess at least one of a first perimeter 103 or a second perimeter 105.

The UE 102 may include interfaces 118 a-d for communicating with othercomputer systems over at least one of the public network 104 or theenterprise network 106 in a client-server or other distributedenvironment. In certain implementations, the UE 102 receives data frominternal or external senders through interfaces 118 a-d for localstorage, processing, or both. Generally, the interfaces 118 a-dcomprises logic encoded in software, hardware, firmware, or combinationthereof operable to communicate with at least one of the public network104 or the enterprise network 106. More specifically, the interfaces 118a-d may comprise software supporting one or more communicationsprotocols associated with the public network 104 or the private network106 or hardware operable to communicate physical signals. In theillustrated implementation, the interfaces 118 a-d include a WiFiinterface 118 a configured to communicate with a public network 104(e.g., Internet), a cellular interface 118 b configured to communicatewith a public network 104 (e.g., a cellular network), a LAN interface118 c configured to wireless communication with the enterprise network106, and a Bluetooth interface 118 d for communicating with fixed ormobile devices over short distances. The interfaces 118 a-d are forillustrate purposes only, and the UE 102 may include all, some, ordifferent interfaces without department from the scope of thisdisclosure.

The UE 102 may be connected to multiple networks, such as, for example,the public network 104 and the enterprise network 106. The publicnetwork 104 may, for example, be a public broadband network such as theInternet. The enterprise network 106 may, for example, be a networkassociated with an enterprise. The enterprise may comprise a corporateor business entity, a government body, a non-profit institution, or anyother organization associated with the UE 102. For example, theenterprise may be the owner of the UE 102 or may lease the UE 102 andmay hire contractors or agents who are responsible for maintaining,configuring, controlling, and/or managing the UE 102. In the illustratedimplementation, the network 104, 106 may facilitate wireless and/orwireline communication with the UE 102. The network 104, 106 maycommunicate, for example, using Internet Protocol (IP) packets, FrameRelay frames, Asynchronous Transfer Mode (ATM) cells, voice, video,data, and other suitable information between network addresses. Inaddition, while the public network 104 and the enterprise network 106are each illustrated as a single network, the network 104, 106, or bothmay comprise a plurality of networks. In short, the public network 104and the enterprise network 106 may comprise any suitable network(s)configured to communicate with the UE 102.

FIGS. 2-14 are directed to MFIB systems with a personal perimeter and anenterprise perimeter. For example, FIG. 3 includes the first perimeter103 as a personal perimeter 303 and the second perimeter 105 as anenterprise perimeter 305. Though, these implementations are forillustration purposes only and packet filtering in MFIB systems mayinclude some, more, all, or different perimeters without departing fromthe scope of this disclosure. For example, the UE may only includemultiple enterprise perimeters.

FIG. 2 is a flow chart illustrating an example method 200 for filteringpackets in a MFIB system. While the method 200 is described with respectto FIG. 1, this method is for illustration purposes only and that thedescribed or similar techniques may be performed at any appropriatetime, including concurrently, individually, or in combination. Inaddition, many of the steps in these flowcharts may take placesimultaneously and/or in different orders than as shown. Moreover,systems may use methods with additional steps, fewer steps, and/ordifferent steps, so long as the methods remain appropriate.

Method 200 begins at step 202 where a VPN tunnel is established. Theapplication 112 a, 112 b may transmit a communication request to thenetwork stack 107, which determines a virtual interface 114 a, 114 bbased on the FIB 108 a, 108 b. The associated IPsec component 116 a, 116b establishes a VPN tunnel through a shared interface 118 a, 118 b or118 c, 118 d. If the binding interface of the VPN tunnel is in thepersonal perimeter at decisional step 204, then execution proceeds todecisional step 206. In the example, the shared interface 118 a, 118 bmay be located in a personal perimeter 103. If the IPsec interface is inan enterprise perimeter at decisional step 206, then execution proceedsto decisional step 208. If the IPsec is also in the personal perimeter,then, at step 210, network packets from personal applications arefiltered. As for the example, if the packet filtering module 109 adetermines that both the ipsec0 interface 114 a and the shared interface118 a, 118 b are in the personal perimeter 103, the packet filteringmodule 109 a filters packets from personal applications, including thepersonal application 112 a, that are assigned to the shared interface118 a, 118 b. Returning to decisional step 208, if enterprise interfacesare available to personal applications, then, at step 210, networkpackets from personal applications are filtered. In the example, thenetwork filtering module 109 a may determine that the binding interface118 a, 118 b is in the personal perimeter 103, the ipsec1 interface 114b interface is in the enterprise perimeter 105, and the personalapplication 112 a has access to the shared interface 118 c, 118 d in theenterprise perimeter 105 and, in response, filter packets from thepersonal application 112 a assigned to the binding interface 118 a, 118b. Again returning to decisional step 208, if enterprise interfaces arenot available to personal applications, then, at step 212, the packetsare directly routed to the binding interface. In the example, thenetwork filtering module 109 a may determine that the binding interface118 a, 118 b is in the personal perimeter 103, the ipsec1 interface 114b interface is in the enterprise perimeter 105, and the personalapplication 112 a does not have access to the shared interface 118 c,118 d in the enterprise perimeter 105 and, in response, routes packetsfrom the personal application 112 a directly to the binding interface118 a, 118 b.

Returning to decisional step 204, if the binding interface is in theenterprise perimeter, execution proceeds to decisional step 214. If theIPsec interface is in the person perimeter, then execution proceeds todecisional step 216. If enterprise interfaces are available to personalapplications, then, at step 210, network packets from personalapplications are filtered. In the example, the network filtering module209 b may determine that the binding interface 118 c, 118 d is in theenterprise perimeter 105, the ipsec0 interface 114 a is in the personalperimeter 103, and the personal application 112 a has access to theshared interface 118 c, 118 d in the enterprise perimeter 105 and, inresponse, filter packets from the personal application 112 a assigned tothe binding interface 118 a, 118 b. If enterprise interfaces are notavailable to personal applications, then, at step 212, the packets aredirectly routed to the binding interface. In the example, the networkfiltering module 109 b may determine that the binding interface 118 c,118 d is in the enterprise perimeter 105, the ipsec0 interface 114 a isin the personal perimeter 103, and the personal application 112 a doesnot have access to the shared interface 118 c, 118 d in the enterpriseperimeter 105 and, in response, routes packets from the enterpriseapplication 112 b directly to the binding interface 118 c, 118 d.Returning to decisional step 214, if the IPsec interface is in theenterprise perimeter, execution proceeds to decisional step 218. Ifenterprise interfaces are available to personal applications, packetsfrom both the personal and enterprise perimeter are filtered at step220. As for the example, the packet filtering module 109 b determinesthat both the binding interface and the IPsec are in the enterpriseperimeter 105 and the interface 118 c, 118 d is available to thepersonal application 112 a, the packet filtering module 109 a and 109 bfilter packets assigned to the binding interface 118 c, 118 d. Returningto decisional step 218, if the enterprise interfaces are not availableto personal applications, packets from enterprise applications arefiltered. In the example, the packet filtering module 109 b maydetermine that both the binding interface and the IPsec interface are inthe enterprise perimeter 105 and the interface 118 c, 118 d are notavailable to the personal application 112 a. In these instances, thepacket filtering module 109 b may filter packets from the enterpriseapplication 112 b assigned to directly route to the binding interface118 c, 118 d.

FIG. 3 illustrates an example communication system 300 for filteringpackets in a personal perimeter 202 including a VPN tunnel 320. In theillustrated implementation, the personal perimeter 303 includes personalapplications 312 a and 312 b, the ipsec0 virtual interface 314 and anIPsec component 316. The IPsec component 816 includes any software,hardware, firmware, or combination thereof for generating a VPN tunnel320 through the personal perimeter 303. For example, a personalapplication 312 a may use the IPsec component 316 to establish anencrypted tunnel 320 through the WiFi interface 318 b and the publicnetwork 304 to an enterprise VPN gateway. In connection withestablishing the VPN tunnel 320, the IPsec component 316 may transmit,to the packet filtering module 309, rules for filtering packets directlyrouted to the Wifi interface 318 b without initially being routedthrough the ipsec0 virtual interface 314. In some aspects of operation,the personal application 312 b may transmit a communication request tothe network stack 307 for accesses to the public network 304. Thenetwork stack 307 may identify the FIB 308 a assigned to the personalperimeter 303 and determine the WiFi interface 318 b is assigned to thecommunication based on the FIB 308 a. Also, the packet filtering module309 may determine that the WiFi interface 318 b is in the personalperimeter 303 and is currently used by the VPN tunnel 320 establishedthrough the ipsec0 virtual interface 314 in the personal perimeter 303.In addition, the packet filtering module 309 may determine that theseoperating conditions match the rules from the IPsec component 316. Inresponse, the packet filtering module 309 may filter network packetsassigned to be directly routed to the Wifi interface 318 b, which isindicated by the blocked communication path 322.

FIG. 4 is a flow chart illustrating an example method 400 for filteringpackets when both a binding interface and an IPsec component are in apersonal perimeter. While the method 400 is described with respect toFIG. 3, this method is for illustration purposes only and that thedescribed or similar techniques may be performed at any appropriatetime, including concurrently, individually, or in combination. Inaddition, many of the steps in these flowcharts may take placesimultaneously and/or in different orders than as shown. Moreover,systems may use methods with additional steps, fewer steps, and/ordifferent steps, so long as the methods remain appropriate.

Method 400 begins at step 402 where a communication request is receivedfrom a person application. For example, the personal application 312 aof FIG. 3 may transmit a communication request to the network stack 307.At step 404, a FIB assigned to the personal perimeter is identified. Inthe example, the network stack 307 may identified FIB 308 assigned tothe personal perimeter 303. Next, at step 406, a virtual interface isidentified based on the destination of the communication and theidentified FIB. As for the example, the network stack 307 may identifiedthe ipsec0 virtual interface 314 based on the FIB 308 and destinationindicated in the request. At step 408, communication from the personalapplication is routed to the virtual interface. In the example, thenetwork stack 307 routes, to the ipsec0 interface 314, communicationfrom the personal application 312 a. Next, at step 410, a VPN tunnel isestablished through a binding interface. Again in the example, the IPseccomponent 316 establishes a VPN tunnel through the Wifi interface 318 b.At step 412, filtering rules are provided. As for the example, the IPseccomponent 316 may transmit filtering rules to the packet filteringmodule 309. A communication request from a different personalapplication is received at step 414. In the example, the personalapplication 312 b may transmit a communication request to the networkstack 307. At step 416, the FIB assigned to the personal perimeter isidentified. As for the example, the network stack 307 may identify theFIB 308 assigned to the personal perimeter 303. Next, at step 418, thebinding interface is determined based on the destination and the FIB. Inthe example, the network stack 307 may determine that the communicationis assigned to directly route to the Wifi interface 318 b based on theFIB 308 and the destination. At step 420, both binding interface and theIPsec component being in the personal perimeter satisfies the filteringrules is determined. Communication assigned to directly route to thebinding interface is filtered. For example, the packet filtering module309 may filter communication from the personal application 312 b.

FIGS. 5 and 6 illustrate example communication systems 500 and 600,respectively, for filtering packets with a binding interface 518 b in apersonal perimeter 503 and an IPsec interface 514 in an enterpriseperimeter 505. In the illustrated implementation, the UE 502 includes apersonal perimeter 503 and the enterprise perimeter 505. The personalperimeter 503 includes a personal application 312 a and a bindinginterface 518 b, and the enterprise perimeter 505 includes an enterpriseapplication 312 b, an ipsec1 virtual interface 514 and an IPseccomponent 516. The IPsec component 816 is configured to establish a VPNtunnel 520 from the enterprise perimeter 505 through the personalperimeter 303. For example, the enterprise application 312 b may use theIPsec component 516 to establish an encrypted tunnel 520 through theWiFi interface 518 b in the personal perimeter 503 and the publicnetwork 504 to an enterprise VPN gateway. In connection withestablishing the VPN tunnel 520, the IPsec component 516 may transmit,to the packet filtering module 509 a in the personal perimeter 503,rules for filtering packets directly routed to the Wifi interface 518 b.In some aspects of operation, the personal application 512 a maytransmit a communication request to the network stack 507 for accessesto the public network 504. The network stack 507 may identify the FIB508 a assigned to the personal perimeter 503 and determine the WiFiinterface 518 b is assigned to the communication session based on theFIB 508 a. Also, the packet filtering module 509 a may determine thatthe WiFi interface 518 b is in the personal perimeter 503 and iscurrently used by the VPN tunnel 520 established through the ipsec1virtual interface 514 in the enterprise perimeter 503. In addition, thepacket filtering module 509 a may also determine whether the personalapplication 312 a is allowed over interfaces (not illustrated) in theenterprise perimeter 405. If the personal application 312 a is notallowed access to enterprise interfaces, the network stack 507 routesthe communication directly to the Wifi interface 518 b as illustrated bythe signal path 522 in FIG. 5. If the personal application 312 a isallowed access to enterprise interfaces, the packet filtering module 509a may determine that the operating conditions match the filter rulesand, in response, filter network packets assigned to be directly routedto the Wifi interface 318 b, which is indicated by the blocked signalpath 524 in FIG. 6.

FIGS. 7A and 7B are a flow chart illustrating an example method 700 forfiltering packets when both a binding interface and an IPsec componentare in a personal perimeter. While the method 700 is described withrespect to FIGS. 5 and 6, this method is for illustration purposes onlyand that the described or similar techniques may be performed at anyappropriate time, including concurrently, individually, or incombination. In addition, many of the steps in these flowcharts may takeplace simultaneously and/or in different orders than as shown. Moreover,systems may use methods with additional steps, fewer steps, and/ordifferent steps, so long as the methods remain appropriate.

Method 700 begins at step 702 where a communication request is receivedfrom a person application. For example, the enterprise application 512 bof FIGS. 5 and 6 may transmit a communication request to the networkstack 507. At step 704, a FIB assigned to the enterprise perimeter isidentified. In the example, the network stack 507 may identified FIB 508b assigned to the enterprise perimeter 505. Next, at step 706, a virtualinterface is identified based on the destination of the communicationand the identified FIB. As for the example, the network stack 507 mayidentified the ipsec1 virtual interface 514 based on the FIB 508 b anddestination indicated in the request. At step 708, communication fromthe enterprise application is routed to the virtual interface. In theexample, the network stack 507 routes, to the ipsec1 interface 514,communication from the enterprise application 312 b. Next, at step 710,a VPN tunnel is established through a binding interface. Again in theexample, the IPsec component 516 establishes a VPN tunnel 520 throughthe Wifi interface 518 b in the personal perimeter 503. At step 712,filtering rules are provided. As for the example, the IPsec component516 in the enterprise perimeter 505 may transmit filtering rules to thepacket filtering module 509 a in the personal perimeter 503. Acommunication request from a personal application is received at step714. In the example, the personal application 512 a may transmit acommunication request to the network stack 507. At step 716, the FIBassigned to the personal perimeter is identified. As for the example,the network stack 507 may identify the FIB 508 a assigned to thepersonal perimeter 503. Next, at step 518, the binding interface isdetermined for the communication session based on the destination andthe FIB. In the example, the network stack 507 may determine that thecommunication is assigned to directly route to the Wifi interface 518 bbased on the FIB 508 a and the destination. If personal applications areallowed access to enterprise interfaces at decisional step 722, then, atstep 726, communication assigned to directly route to the bindinginterface is filter. If the personal applications are not allowed accessto the enterprise interfaces, then, at step 726, the packets are routeddirectly to the binding interface. As for the example, the packetfiltering module 509 a may determine whether the person application 512a is granted access to one or more enterprise interfaces. If access isnot granted, the network stack 507 may route communication from thepersonal application 512 a directly to the Wifi interface 518 b asillustrated by the signal path 522 in FIG. 5. If access is granted, thepacket filtering module 509 a may filter communication from the personalapplication 512 a as illustrated by the block signal path 524 in FIG. 6.

FIGS. 8 and 9 illustrate example communication systems 800 and 900,respectively, for filtering packets with a binding interface 818 b in anenterprise perimeter 805 and an IPsec interface 814 in a personalperimeter 803. In the illustrated implementation, the UE 802 includes apersonal perimeter 803 and the enterprise perimeter 805. The personalperimeter 803 includes a personal application 812 a and 812 b, a sharedinterface 818 b, an ipsec0 virtual interface 814, and an IPsec component816, and the enterprise perimeter 805 includes the binding interface 818b. The IPsec component 816 is configured to establish a VPN tunnel 820from the personal perimeter 803 through the enterprise perimeter 805.For example, the personal application 812 a may use the IPsec component816 to establish an encrypted tunnel 820 through the WiFi interface 818b in the enterprise perimeter 805 and the public network 504 to anenterprise VPN gateway. In connection with establishing the VPN tunnel820, the IPsec component 816 may transmit, to the packet filteringmodule 809 a in the personal perimeter 803, rules for filtering packetsdirectly routed to the Wifi interface 818 b. In some aspects ofoperation, the personal application 812 a may transmit a communicationrequest to the network stack 807 for accesses to the public network 804.The network stack 807 may identify the FIB 808 a assigned to thepersonal perimeter 803 and determine the WiFi interface 818 b isassigned to the communication based on the FIB 808 a. Also, the packetfiltering module 809 a may determine that the WiFi interface 818 b is inthe enterprise perimeter 805 and is currently used by the VPN tunnel 820established through the ipsec0 virtual interface 814 in the personalperimeter 803. In addition, the packet filtering module 809 a may alsodetermine whether the personal application 812 a is allowed access tointerfaces 818 a-d in the enterprise perimeter 405. If the personalapplication 812 a is not allowed access to enterprise interfaces 818a-d, the network stack 807 routes the communication directly to the Wifiinterface 818 b as illustrated by the signal path 822 in FIG. 8. If thepersonal application 812 a is allowed access to enterprise interfaces,the packet filtering module 809 a may determine that the operatingconditions match the filter rules and, in response, filter networkpackets assigned to be directly routed to the Wifi interface 818 b,which is indicated by the blocked signal path 824 in FIG. 9.

FIGS. 10A and 10B are a flow chart illustrating an example method 1000for filtering packets when both a binding interface and an IPseccomponent are in a personal perimeter. While the method 1000 isdescribed with respect to FIGS. 8 and 9, this method is for illustrationpurposes only and that the described or similar techniques may beperformed at any appropriate time, including concurrently, individually,or in combination. In addition, many of the steps in these flowchartsmay take place simultaneously and/or in different orders than as shown.Moreover, systems may use methods with additional steps, fewer steps,and/or different steps, so long as the methods remain appropriate.

Method 1000 begins at step 1002 where a communication request isreceived from a person application. For example, the personalapplication 812 b of FIGS. 8 and 9 may transmit a communication requestto the network stack 807. At step 1004, a FIB assigned to the personalperimeter is identified. In the example, the network stack 807 mayidentify FIB 808 a as assigned to the personal perimeter 803. Next, atstep 1006, a virtual interface is identified based on the destination ofthe communication and the identified FIB. As for the example, thenetwork stack 807 may identified the ipsec0 virtual interface 814 basedon the FIB 808 a and destination indicated in the request. At step 1008,communication from the personal application is routed to the virtualinterface. In the example, the network stack 807 routes, to the ipsec0interface 814, communication from the personal application 312 b. Next,at step 1010, a VPN tunnel is established through a binding interface.Again in the example, the IPsec component 816 establishes a VPN tunnel820 through the Wifi interface 818 b in the enterprise perimeter 805. Atstep 1012, filtering rules are provided. As for the example, the IPseccomponent 816 in the personal perimeter 803 may transmit filtering rulesto the packet filtering module 809 a in the personal perimeter 803.

A communication request from a personal application is received at step814. In the example, the personal application 812 a may transmit acommunication request to the network stack 807. At step 1016, the FIBassigned to the personal perimeter is identified. As for the example,the network stack 807 may identify the FIB 808 a assigned to thepersonal perimeter 803. Next, at step 818, the binding interface isdetermined for the communication session based on the destination andthe FIB. In the example, the network stack 807 may determine that thecommunication is assigned to directly route to the Wifi interface 818 bbased on the FIB 808 a and the destination. If personal applications areallowed access to enterprise interfaces at decisional step 1022, then,at step 1026, communication assigned to directly route to the bindinginterface is filter. If the personal applications are not allowed accessto the enterprise interfaces, then, at step 1026, the packets are routeddirectly to the binding interface. As for the example, the packetfiltering module 809 a may determine whether the person application 812a is granted access to one or more enterprise interfaces. If access isnot granted, the network stack 807 may route communication from thepersonal application 812 a directly to the Wifi interface 818 b asillustrated by the signal path 822 in FIG. 8. If access is granted, thepacket filtering module 809 a may filter communication from the personalapplication 812 a as illustrated by the block signal path 824 in FIG. 9.

FIGS. 11 and 12 illustrate example communication systems 1100 and 1200,respectively, for filtering packets with both a binding interface 1118 band an IPsec interface 1114 in an enterprise perimeter 1105. In theillustrated implementation, the UE 1102 includes a personal perimeter1103 and the enterprise perimeter 1105. The personal perimeter 1103includes a personal application 1112 a and a shared interface 1118 b,and the enterprise perimeter 1105 includes enterprise applications 1112c and 1112 c, an ipsec1 virtual interface 1114, an IPsec component 1116,and the binding interface 1118 b. The IPsec component 1116 is configuredto establish a VPN tunnel 1120 in the enterprise perimeter 1105. Forexample, the enterprise application 1112 c may use the IPsec component1116 to establish an encrypted tunnel 1120 through the WiFi interface1118 b in the enterprise perimeter 1105 and the public network 1104 toan enterprise VPN gateway. In connection with establishing the VPNtunnel 1120, the IPsec component 1116 may transmit, to the packetfiltering module 1109 b in the enterprise perimeter 1105, rules forfiltering packets directly routed to the Wifi interface 1118 b. In someaspects of operation, the enterprise application 1112 b may transmit acommunication request to the network stack 1107 for accesses to thepublic network 1104. The network stack 1107 may identify the FIB 1108 bassigned to the enterprise perimeter 1105 and determine the WiFiinterface 1118 b is assigned to the communication based on the FIB 808b. Also, the packet filtering module 1109 a may determine the WiFiinterface 1118 b for communication in the enterprise perimeter 1105 andthe WiFi interface 1118 b is currently used by the VPN tunnel 1120established through the ipsec1 virtual interface 1114 in the enterpriseperimeter 1103. In response, the packet filtering module 1109 a mayfilter packets from the enterprise application 1112 b while the VPNtunnel 1120 is established.

In addition, the personal application 1112 a may transmit acommunication request to the network stack 1107 for accesses to thepublic network 1104. The network stack 1107 may identify the FIB 1108 aassigned to the personal perimeter 1103 and determine the WiFi interface1118 b is assigned to the communication based on the FIB 1108 a. Also,the packet filtering module 1109 a may determine the WiFi interface 1118b for communication is in the personal perimeter 1103 and that the WiFiinterface 1118 b is currently used by the VPN tunnel 1120 establishedthrough the ipsec1 virtual interface 1114 in the enterprise perimeter1103. Also, the packet filtering module 1109 a may also determinewhether the personal application 1112 a is allowed access to interfaces1118 a-d in the enterprise perimeter 1105. If the personal application1112 a is not allowed access to enterprise interfaces 1118 a-d, thenetwork stack 1107 routes the communication directly to the Wifiinterface 1118 b as illustrated by the signal path 822 in FIG. 11. Ifthe personal application 1112 a is allowed access to enterpriseinterfaces, the packet filtering module 1109 a may determine that theoperating conditions match the filter rules and, in response, filternetwork packets assigned to be directly routed to the Wifi interface1118 b, which is indicated by the blocked signal path 1124 in FIG. 12.

FIGS. 13A and 13B are a flow chart illustrating an example method 1000for filtering packets when both a binding interface and an IPsecinterface are in an enterprise perimeter. While the method 1300 isdescribed with respect to FIGS. 11 and 12, this method is forillustration purposes only and that the described or similar techniquesmay be performed at any appropriate time, including concurrently,individually, or in combination. In addition, many of the steps in theseflowcharts may take place simultaneously and/or in different orders thanas shown. Moreover, systems may use methods with additional steps, fewersteps, and/or different steps, so long as the methods remainappropriate.

Method 1300 begins at step 1302 where a communication request isreceived from an enterprise application. For example, the enterpriseapplication 1112 c of FIGS. 11 and 12 may transmit a communicationrequest to the network stack 1107. At step 1304, a FIB assigned to theenterprise perimeter is identified. In the example, the network stack1107 may identified FIB 1108 b assigned to the enterprise perimeter1105. Next, at step 1306, a virtual interface is identified based on thedestination of the communication and the identified FIB. As for theexample, the network stack 1107 may identified the ipsec1 virtualinterface 1114 based on the FIB 1108 b and destination indicated in therequest. At step 1308, communication from the enterprise application isrouted to the virtual interface. In the example, the network stack 1107routes, to the ipsec1 interface 814, communication from the enterpriseapplication 1112 c. Next, at step 1310, a VPN tunnel is establishedthrough a binding interface. Again in the example, the IPsec component1116 establishes a VPN tunnel 1120 through the Wifi interface 1118 b inthe enterprise perimeter 1105. At step 1312, filtering rules areprovided. As for the example, the IPsec component 1116 in the enterpriseperimeter 1103 may transmit filtering rules to the packet filteringmodule 1109 a in the personal perimeter 1103 and the packet filteringmodule 1109 b in the enterprise perimeter 1105.

A communication request from a different enterprise application isreceived at step 1314. In the example, the enterprise application 1112 amay transmit a communication request to the network stack 1107. At step1316, the FIB assigned to the enterprise perimeter is identified. As forthe example, the network stack 1107 may identify the FIB 1108 b assignedto the enterprise perimeter 1103. Next, at step 1318, the bindinginterface is determined for the communication session based on thedestination and the FIB. In the example, the network stack 1107 maydetermine that the communication is assigned to directly route to theWifi interface 1118 b based on the FIB 1108 b and the destination. Atstep 1322, communication from the different enterprise application isfiltered. As for the example, the packet filtering module 1109 b filterscommunication from the enterprise application 1112 b.

A communication request from a personal application is received at step1324. In the example, the personal application 1112 a may transmit acommunication request to the network stack 1107. At step 1326, the FIBassigned to the personal perimeter is identified. As for the example,the network stack 1107 may identify the FIB 1108 a assigned to thepersonal perimeter 1103. Next, at step 1328, the binding interface isdetermined for the communication session based on the destination andthe FIB. In the example, the network stack 1107 may determine that thecommunication is assigned to directly route to the Wifi interface 1118 bbased on the FIB 1108 a and the destination. Both the binding interfaceand IPsec component being in enterprise perimeter is determined tosatisfy the filtering rules at step 1330. If personal applications areallowed access to enterprise interfaces at decisional step 1332, then,at step 1334, communication assigned to directly route to the bindinginterface is filtered. If the personal applications are not allowedaccess to the enterprise interfaces, then, at step 1336, the packets arerouted directly to the binding interface. As for the example, the packetfiltering module 1109 a may determine whether the personal application1112 a is granted access to one or more enterprise interfaces. If accessis not granted, the network stack 1107 may route communication from thepersonal application 1112 a directly to the Wifi interface 1118 b asillustrated by the signal path 1122 in FIG. 11. If access is granted,the packet filtering module 1109 a may filter communication from thepersonal application 1112 a as illustrated by the block signal path 1124in FIG. 12.

FIG. 14 is a flow chart illustrating an example method 1400 forfiltering packets in an MFIB system. While the method 1400 is describedwith respect to FIG. 1, this method is for illustration purposes onlyand that the described or similar techniques may be performed at anyappropriate time, including concurrently, individually, or incombination. In addition, many of the steps in these flowcharts may takeplace simultaneously and/or in different orders than as shown. Moreover,systems may use methods with additional steps, fewer steps, and/ordifferent steps, so long as the methods remain appropriate.

Method 1400 begins at step 1402 where the communication interface for asession is the binding interface for a VPN tunnel. For example, thepacket filtering module 109 a or 109 b may determine that thecommunication interface for a session is the binding interface for a VPNtunnel. If both the virtual interface and the binding interface are inthe same perimeter at decisional step 1404, then, at step 1406,communication from applications in the same perimeter and assigned toroute directly to the binding interface is blocked. For example, thepacket filtering module 109 a, 109 b may filter packets if both thebinding and virtual interface are in the first perimeter 103 or thesecond perimeter 105. If personal applications are not allowed access toenterprise interfaces at decisional step 1408, then execution ends. Ifthe personal applications are granted access to the enterpriseinterfaces, then, at step 1410, communication assigned to directly routeto the binding interface are block in both the personal and enterpriseinterface. As for decisional step 1404, if the communication interfaceand the binding interface are in different perimeters, then executionproceeds to decisional step 1414. If the personal applications aregranted access to enterprise interfaces, then, at step 1416, directaccess to the binding interface in the personal perimeter is blocked. Ifthe personal applications are not granted access, then execution ends.

A number of embodiments of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention.Accordingly, other embodiments are within the scope of the followingclaims.

What is claimed is:
 1. A method for routing communication, comprising: receiving a request for a communication session from an application running on a user device, wherein the user device includes two or more perimeters, a binding interface, and an Internet Protocol (IP) security (IPsec) interface wherein the binding interface comprises a wireless interface hardware component for the receiving of the request and the routing of the communications for the communications session, each of the two or more perimeters includes resources specific to each respective perimeter and is configured to prevent the resources specific to perimeters other than the each respective perimeter from accessing the resources specific to the each respective perimeter; determining the binding interface for the communication session based on a forwarding information base (FIB) and a destination for the communication session, the binding interface shared with the two or more perimeters; determining that a virtual private network(VPN) tunnel is currently established through the IPsec interface and the binding interface; and determining whether to filter the communication session based on which of the two or more perimeters of the user device includes the binding interface and which of the two or more perimeters of the user device includes the IPsec interface when the VPN tunnel is currently established.
 2. The method of claim 1, the method further comprising: determining the binding interface, the IPsec interface, and the application are included in a same perimeter; and filtering packets from the application to prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 3. The method of claim 2, wherein the same perimeter is an enterprise perimeter, the method further comprising: determining applications including the application in a personal perimeter are granted access to interfaces in the enterprise perimeter; and filtering packets from the applications in both the personal perimeter and the enterprise perimeter to substantially prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 4. The method of claim 1, the method further comprising: determining the binding interface and the IPsec interface are included in different perimeters; determining applications in a personal perimeter are granted access to interfaces in an enterprise perimeter; and filtering packets from the applications in the personal perimeter to prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 5. The method of claim 1, the method further comprising: determining the binding interface and the IPsec interface are included different perimeters; determining applications in a personal perimeter are prohibited access to interfaces in an enterprise perimeter; and routing packets for the requested communication session to the binding interface.
 6. The method of claim 1, wherein the user device comprises a mobile device.
 7. The method of claim 1, wherein the binding interface comprises at least one of a Wifi interface, a cellular interface, or a frequency-hopping spread spectrum interface.
 8. A computer program product encoded on a tangible, non-transitory storage medium, the product comprising computer readable instructions for causing one or more processors to perform operations comprising: receiving a request for a communication session from an application running on a user device, wherein the user device includes two or more perimeters, a binding interface, and an Internet Protocol (IP) security (IPsec) interface, wherein the binding interface comprises a wireless interface hardware component for the receiving of the request and the routing of the communications for the communications session, each of the two or more perimeters includes resources specific to each respective perimeter and is configured to prevent the resources specific to perimeters other than the each respective perimeter from accessing the resources specific to the each respective perimeter; determining the binding interface for the communication session based on a forwarding information base (FIB) and a destination for the communication session, the binding interface shared with the two or more perimeters; determining that a virtual private network (VPN) tunnel is currently established through the IPsec interface and the binding interface; and determining whether to filter the communication session based on which of the two or more perimeters of the user device includes the binding interface and which of the two or more perimeters of the user device includes the IPsec interface when the VPN tunnel is currently established.
 9. The computer program product of claim 8, the instructions further comprising: determining the binding interface, the IPsec interface, and the application are included in a same perimeter; and filtering packets from the application to prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 10. The computer program product of claim 9, wherein the same perimeter is an enterprise perimeter, the instructions further comprising: determining applications including the application in a personal perimeter are granted access to interfaces in the enterprise perimeter; and filtering packets from the applications in both the personal perimeter and the enterprise perimeter to substantially prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 11. The computer program product of claim 8, the instructions further comprising: determining the binding interface and the IPsec interface are included different perimeters; determining applications in a personal perimeter are granted access to interfaces in an enterprise perimeter; and filtering packets from the applications in the personal perimeter to prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 12. The computer program product of claim 8, the instructions further comprising: determining the binding interface and the IPsec interface are included in different perimeters; determining applications in a personal perimeter are prohibited access to interfaces in an enterprise perimeter; and routing packets for the requested communication session to the binding interface.
 13. The computer program product of claim 8, wherein the user device comprises a mobile device.
 14. The computer program product of claim 8, wherein the binding interface comprises at least one of a Wifi interface, a cellular interface, or a frequency-hopping spread spectrum interface.
 15. A user device for routing a communication, comprising: memory that stores a plurality of FIBs including a FIB and an application, wherein each FIB in the plurality of FIBs identifies routes and interfaces for communicating messages; and one or more processors configured to: receive a request for a communication session from an application running on a user device, wherein the user device includes two or more perimeters, a binding interface, and an Internet Protocol (IP) security (IPsec) interface wherein the binding interface comprises a wireless interface hardware component for the receiving of the request and the routing of the communications for the communications session, each of the two or more perimeters includes resources specific to each respective perimeter and is configured to prevent the resources specific to perimeters other than the each respective perimeter from accessing the resources specific to the each respective perimeter; determine the binding interface for the communication session based on a forwarding information base (FIB) and a destination for the communication session, the binding interface shared with the two or more perimeters; determine that a virtual private network (VPN) tunnel is currently established through the IPsec interface and the binding interface; and determine whether to filter the communication session based on which of the two or more perimeters of the user device includes the binding interface and which of the two or more perimeters of the user device includes the IPsec interface when the VPN tunnel is currently established.
 16. The user device of claim 15, the processors further configured to: determine the binding interface, the IPsec interface, and the application are included in a same perimeter; and filter packets from the application to prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 17. The user device of claim 16, wherein the same perimeter is an enterprise perimeter, the processors further configured to: determine applications including the application in a personal perimeter are granted access to interfaces in the enterprise perimeter; and filter packets from the applications in both the personal perimeter and the enterprise perimeter to substantially prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 18. The user device of claim 15, the processors further configured to: determine the binding interface and the IPsec interface are included different perimeters; determine applications in a personal perimeter are granted access to interfaces in an enterprise perimeter; and filter packets from the applications in the personal perimeter to prevent direct access to the binding interface, wherein the filtered packets were generated for the communication session.
 19. The user device of claim 15, the processors further configured to: determine the binding interface and the IPsec interface are included in different perimeters; determine applications in a personal perimeter are prohibited access to interfaces in an enterprise perimeter; and route packets for the requested communication session to the binding interface.
 20. The user device of claim 15, wherein the binding interface comprises at least one of a Wifi interface, a cellular interface, or a frequency-hopping spread spectrum interface. 